package org.jeecg.modules.gwcjava.jiekou.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.ParameterModule.entity.AddSystemPriceInfo;
import org.jeecg.modules.alipay.bo.PaymentBO;
import org.jeecg.modules.gwcjava.jiekou.entity.*;
import org.jeecg.modules.zonglzp.entity.BusinesswaterEntity;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface BusinessLogicService extends IService<MlccLookingInfo> {
    //产品求购
    int add_looking(String userId,String looking_title, String looking_detail, String imgs,Date create_time);
    //查询导航栏的模块
    List<ModelInfo> query_module();
    //根据公司id查询所有门店
    List<StoreInfo> query_storeinfo(String companyId,int type);
    //根据门店编号查询门店
    StoreInfo query_storeDetailBycode(String storeCode);
    //根据门店编号查询门店的常用地址列表
    List<StoreInfo> query_storeAddressBycode(String storeCode);
    //根据地址id查询地址详情
    StoreInfo query_nomladdressByid(String address_id);
    //根据传入的类型查询不同的数据
    List<DataTypeInfo> query_dataBytype(String type);
    //查询所有快递
    List<CourierInfo> query_AllCourier();
    //根据导航栏id和类别id查询模块名称
    List<ModuleSmalltemplateInfo> query_SmalltemplateInfo(String moduleId,String category_id);
    //根据模块id查询类别
    List<CategoryInfo> query_categoryInfo(String templateId,String category_id);
    //查询所有绣字字体
    List<EmbroideredFontInfo> query_AllembroiderFont(String category_ids,int type);
    //查询所有绣字颜色
    List<EmbroideredColorInfo> query_AllembroiderColor(String category_ids);
    //查询所有撞色
    List<ContrastcolorInfo> query_AllContrastcolorInfo(String category_id,String category_ids);
    //修改撞色的色值(now not use)
    int update_Contrastcolor(String id,String color_id);
    //添加修改撞色的记录
    int add_ContrastcolorRedcord(String zhuangse_id,String color_id,String user_id,String category_ids,String product_id);
    //根据撞色id产品id用户id修改撞色记录
    int update_ContrastcolorRedcord(String color_id,String zhuangse_id,String user_id,String category_ids,String product_id);
    //根据撞色id和颜色id产品id用户id查询
    ZhuangseRedcordInfo query_zhuangseRedcordById(String zhuangse_id,String user_id,String category_ids,String product_id);

    //根据查询模块id和类别id查询身体数据
    List<BodySizeInfo> query_bodySizeinfo(String template_id,String category_id,String is_jin);
    //根据查询模块id和类别id查询身体部位数据
    List<SizeInfo> query_sizeInfo(String template_id,String category_id);
    List<SizeInfo1> query_sizeInfo1(String sizeId);
    //增加模板
    int add_templateInfo(TemplateRecordInfo templateInfo);
    //编辑更新模板
    int update_single_templateInfo(TemplateRecordInfo templateInfo);
    //根据类别id查询类别详情
    CategoryInfo query_categoryDetailInfo(String category_id);
    //根据token查询模板列表
//    List<TemplateRecordInfo> query_templateInfoByuserid(String user_id);
    IPage<TemplateRecordInfo> query_templateInfoByuserid(Page<TemplateRecordInfo> page,String user_id);
    //生成订单
    int add_signOrderInfo(SingleOrderInfo templateInfo);
    //根据订单号查询订单
    SingleOrderInfo query_signorder(String order_sn);
    //根据模板编号查询模板
    TemplateRecordInfo query_templateRecordInfo(String order_sn);
    //添加订单与尺寸关系表--改为产品尺寸关系表
    int add_Order_sizeInfo(String order_id,String bodysize_id,String sizevalue,String is_order,Date create_time);
    //根据类别id查询位置
    List<CategoryLocaltion> query_localtionInfo(String category_id);
    //根据用户id查询订单
    IPage<TemplateRecordInfo> query_orderinfoByuserId(Page<TemplateRecordInfo> page,String user_id);
    //根据用户id查询模板
    IPage<TemplateRecordInfo> query_signmoduleinfo(Page<TemplateRecordInfo> page,String user_id,int type);
    //根据用户id查询订单2
    IPage<SingleOrderInfo> query_orderinfoByuserId2(Page<SingleOrderInfo> page,String user_id,String queryTime,String queryName);
    //根据面料id查询面料详情
    FabricInfo query_fabricDetailInfo(String fabric_id);
    //根据纽扣id查询纽扣详情
    ButtonsInfo query_buttonsInfo(String buttons_id);
    //根据绣字类型id查询绣字类型详情
    EmbroideredTypePriceInfo query_emPriceinfo(String emid);
    //根据用户id和订单号修改状态
    int update_status(String order_sn,int type);
    //根据订单号更新订单
    int update_single_order(SingleOrderInfo orderInfo);
    //创建产品
    int insert_products(ProductInfo productInfo);
    //创建产品--添加到部门
    int insert_products_todepart(String productId,String departId,Date creaTime);
    //编辑产品
    int update_products(ProductInfo productInfo);
    //根据订单号查询产品列表
    List<ProductInfo> query_productInfoByorderSn(String user_id,String order_sn);
    //根据模板编号查询产品列表
    List<ProductInfo> query_productInfoBytemplateSn(String user_id,String template_sn);
    //创建团订订单
    int insert_team_order(TeamOrderInfo teamOrderInfo);
    //创建团订模板
    int insert_team_template(TeamTemplateInfo templateInfo);
    //编辑团订订单
    int update_team_order(TeamOrderInfo teamOrderInfo);
    //编辑团订模板
    int update_team_template(TeamTemplateInfo templateInfo);
    //查询订单基本信息
    TeamOrderInfo queryOrderDetail(String orderSn);
    //根据用户id和type查询团队模板和订单表
    IPage<TeamTemplateInfo> query_teamTemplateInfo(Page<TeamTemplateInfo> page,String user_id,String orgcode,int type);
    //根据模板编号查询模板详情
    TeamTemplateInfo query_teamTemplateDetailInfo(String order_sn);
    //根据产品id查询产品详情
    ProductInfo query_productDetail(String product_id);
    //根据用户id查询业务流水表
    List<BusinessWaterInfo> query_businesswaterInfo(String user_id,String StartTime,String endTime);
    //根据时间统计业务流水表的笔数
    List<BusinessWaterInfo> count_businesswaterInfo(String creatime,String user_id);
    //根据订单id查询订单金额
    BusinessWaterInfo queryOrderMoney(String id,int type);
    //根据条件查询业务流水表
    List<BusinessWaterInfo> query_businesswater_today(String user_id,String addtime);
    //根据产品id和尺寸id查询产品尺寸关联表
    List<BodySizeInfo> query_bodySizeinfo_productid(String productId,String bodysizeId,String bodysizeVaule);
    //根据用户id查询用户业务流水表
    IPage<BusinessWaterInfo> query_yewu_waterInfo(Page<BusinessWaterInfo> page,String user_id,int type);

    //根据客户id，产品id，订单编号查询小产品
    SmallProductInfo query_smallProductInfo(String teamOrderSn,String productId,String customerId);
    //创建团订下的小产品
    int insert_teamOrder_products(SmallProductInfo dataInfo);
    //修改团订下的小产品
    int update_teamOrder_products(SmallProductInfo dataInfo);
    //添加小产品尺寸关联表
    int insert_smallproduct_bodysizes(String team_order_sn,String customer_product_id,String bodysize_id,String bodysize_value);
    //修改小产品尺寸关联表
    int update_smallproduct_bodysizes(String team_order_sn,String customer_product_id,String bodysize_id,String bodysize_value,int status);

    //根据订单编号查询和类型查询订单详情
    PaymentBO query_paymentBODetail(String order_sn,String type);

    //根据团订下的客户id和客户编码查询客户信息
    CustomerInfo queryCostomerDtailById(String customerId,String code);
    //根据部门id查询部门下的产品
    List<ProductInfo> query_allproductBydepartId(String departId,String sex);
    //删除部门下的产品
    int delete_depart_product(String id,String product_id);
    //根据客户id查询量体信息
    IPage<CustomerInfo> query_customer_liangti(Page<CustomerInfo> page,String partmentId,String queryName,int is_liangti);
    //根据团订下的客户id查询客户信息（这里是公司身份）
    CustomerInfo queryCostomerInfoById(String customerId);

    //查询我的消息
    List<MessageDataInfo2> query_mymessage(String queryName,String is_read,String user_id);
    //查询消息详情
    MessageDataInfo2 query_messageDetail(String msg_id);

    //添加消息已读
    int add_readed_message(String message_id,String sys_user_id,String userType);
    //查询已读消息详情
    MessageDataInfo2 query_read_messageDetail(String message_id,String sys_user_id);
    //查询价格体系
    PriceSystemPinleiInfo query_pricesysytemDetail(String category_id,String bussiness_type,String is_gognyi);
    List<PriceSystemQujianInfo> query_pricequjian(String system_price_id);

    //查询绣字高度-根据类别
    List<EmbroideredTypePriceInfo> query_xiuziHeightInfo(String category_id,String xiuzi_type);

    //根据品类id查询系统加急项--查询下级
    List<AddSystemPriceInfo> query_system_priceInfo(String category_id,String type);
    //根据品类id查询系统加急项--查询上级
    List<PriceTopSystemInfo> query_system_ToppriceInfo(String category_id);


    //根据品类id和业务类型id查询价格体系记录
    MlccPriceSystemPinglei2 query_pricepinglei(String category_id,String type,String is_gongyi);
    //根据品类id，价格体系id，参数id查询具体的成本记录
    MlccPriceSystemCostRecord query_pricepinglei_CostRecord(String category_id,String price_id,String canshu_id);

    //根据用户id查询团订订单列表
    IPage<TeamOrderInfo> query_teamOrderInfo(Page<TeamOrderInfo> page,String user_id,String queryTime,String queryName);
    //根据用户id查询个订订单列表
    IPage<SingleOrderInfo> query_singleOrderInfo(Page<SingleOrderInfo> page,String user_id,String queryTime,String queryName);
    //根据版号id查询辅料
    List<CategoryMaterialInfo> query_alllibuListBycategoryId(String category_id,String type);
    //根据版号id查询辅料--分页
    IPage<CategoryMaterialInfo> query_MaterialInfopageList(Page<CategoryMaterialInfo> page,String category_id,String type,String code,String buttontype);
    //根据版号id查询绣字图片或者字体--分页
    IPage<EmbroideredFontInfo> query_xiuziImgpageList(Page<EmbroideredFontInfo> page,String category_id,String type,String code);
    //根据版号id查询绣字颜色--分页
    IPage<EmbroideredColorInfo> query_xiuziColorpageList(Page<EmbroideredColorInfo> page,String category_id,String code);

    //根据里布id查询里布/低领里详情
    CategoryMaterialInfo query_materialInfo(String metarmail_id,int type);

    //查询协议详情
    AgreementInfo query_userXieyiDetail(String msg_id,String type);

    //编辑产品--名称
    int update_only_productsName(String id,String name);
    //删除小产品
    int delete_small_product(String id);

    //根据客户id，大产品id，订单编号查询小产品详情
    SmallProductInfo query_smallproductInfoByType(String customerId,String productId,String orderSn);
    //根据尺寸id查询尺寸详情
    BodySizeInfo query_bodySizeInfoByid(String bodysizeId);

    //根据产品id删除尺寸
    int delete_product_bodysize(String product_id);

    //根据里布id和版号地查询：type:1里布，2底领尼，3纽扣
    CategoryMaterialInfo query_materialDetail(String metarmail_id,String plate_id,int type);

    //根据品类id查询所有撞色
    List<ContrastcolorInfo> query_AllContrastInfoByCategoryId(String category_id);
    //根据撞色id查询撞色详情
    ContrastcolorInfo queryContrasDetail(String category_id,String id);
    //根据类别id查询身体数据
    List<BodySizeInfo> query_bodySizeinfoByplateId(String category_id);

    //根据版号id查询下面所有的定制项参数
    List<CategoryInfo> query_categorylistByplateId(String plateId);

    //根据客户id查询客户详情信息：1id，2编码
    CustomerInfo query_customerDetailByid(String customerId,int type);
    //根据客户id查询客户下的所有部门
    List<CustomerDepartInfo> query_cusdepartList(String customerId);
    //根据客户id查询客户下的所有客户
    List<CustomerInfo> query_customerlistByparentId(String customerId);
    //根据部门id查询部门下的所有产品
    List<ProductInfo> query_productBydepartId(String departId);
    //根据部门id/编码查询部门详情信息
    CustomerDepartInfo query_CustomerDepartDetailByid(String departId,int type);
    //创建客户
    int add_newcustomer(CustomerInfo testinfo);
    //创建客户下的部门
    int add_newcustomer_depart(CustomerDepartInfo testinfo);
    //增加部门下的产品
    int add_newdepart_product(String product_id,String depart_id,String remark);
    //根据用户的公司id查询退款表
    List<RefundMoneyInfo> query_RefundMoneyInfo(String company_user_id);

    //根据订单编号和类型修改订单状态
    int change_order_status(String orderSn,int type,int applymethod);
    //插入流水表
    int insert_into_water(BusinessWaterInfo object);
    //插入订单跟踪表
    int insert_into_ordertracking(String id,String order_sn,String order_type,String remark,String thing,int order_status);
    //插入订单事件表
    int insert_into_orderevent(String id,String event_name,int type,String order_sn,String order_type,String remark);

    //根据面料订单编号查询面料详情
    FabricOrderInfo query_fabricOrderDetailBycode(String order_sn);

    //新增微信订单记录
    int add_wxorderinfo(WxOrderStatus testinfo);
    //根据微信订单号查询
    WxOrderStatus query_WxOrderStatusDetailBysn(String outTradeNo);
    //修改微信订单记录的状态
    int update_wxorder_status(String id,String status);

    //根据上级品类id和编号查询类别详情
    CategoryInfo query_categoryDetailBytop_id(String top_id,String code);

    //根据订单号更新订单里面的产品
    int update_single_order_products(String products,String orderSn);
    //根据订单号更新订单里面的产品
    int update_single_template_products(String products,String templateSn);

    //查询商品详情
    ThirdGoodsInfo query_goodsDetailByid(String goodsId);
    //根据商品系列id查询商品下面的阶梯价
    List<ThirdGoodsLadderPrice> query_rungpricedatalist(String series_id);
    //根据商品id查询商品下面的规格
    List<ThirdGoodsSpecifications> query_Specificationsdatalist(String goodsId);
    //根据商品id查询商品下面的参数
    List<ThirdGoodParameter> query_Parameterdatalist(String goodsId);

    //插入现货购物车
    int add_cart_goods(ThirdCartInfo datainfo);
    //插入现货购物车-下的规格购买数量
    int add_cart_goods_buynum(ThirdCartInfo datainfo);
    //根据商品id查询购物车
    ThirdCartInfo query_cartinfoBygoodId(String goods_id,String user_id);
    //根据商品id、规格id、尺码id查询购物车下的规格购买数量
    ThirdCartInfo query_cartinfobuyNum_BygoodId(String goods_id,String guige_id,String size_id,String user_id);
    //执行修改购买数量
    int update_cart_goods_buynum(String id,String nownum);
    //执行修改购物车商品数量
    int update_cart_goods(String id,String nownum,String money);
}
